package org.jsola.hr.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.vo.BaseVO;
import org.jsola.permission.vo.RoleVO;

import java.util.Date;
import java.util.List;

import static org.jsola.core.example.BaseExample.E_GMT_CREATE;
import static org.jsola.core.example.BaseExample.E_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.E_ID;
import static org.jsola.core.example.BaseExample.N_GMT_CREATE;
import static org.jsola.core.example.BaseExample.N_GMT_MODIFIED;
import static org.jsola.core.example.BaseExample.N_ID;
import static org.jsola.hr.example.HrRoleExample.E_CODE;
import static org.jsola.hr.example.HrRoleExample.E_DESCRIPTION;
import static org.jsola.hr.example.HrRoleExample.E_NAME;
import static org.jsola.hr.example.HrRoleExample.E_RESERVE_FLAG;
import static org.jsola.hr.example.HrRoleExample.E_ROLE_IDS;
import static org.jsola.hr.example.HrRoleExample.N_CODE;
import static org.jsola.hr.example.HrRoleExample.N_DESCRIPTION;
import static org.jsola.hr.example.HrRoleExample.N_NAME;
import static org.jsola.hr.example.HrRoleExample.N_RESERVE_FLAG;
import static org.jsola.hr.example.HrRoleExample.N_ROLE_IDS;

/**
 * 人力角色表
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "【人力角色表】列表展示对象")
@Data
public class HrRoleListVO extends BaseVO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_ID, example = E_ID)
    private Long id;

    @ApiModelProperty(notes = N_NAME, example = E_NAME)
    private String name;

    @ApiModelProperty(notes = N_ROLE_IDS, example = E_ROLE_IDS)
    private String roleIds;

    @ApiModelProperty(notes = N_DESCRIPTION, example = E_DESCRIPTION)
    private String description;

    @ApiModelProperty(notes = N_CODE, example = E_CODE)
    private String code;

    @ApiModelProperty(notes = N_RESERVE_FLAG, example = E_RESERVE_FLAG)
    private Boolean reserveFlag;

    @ApiModelProperty(notes = N_GMT_CREATE, example = E_GMT_CREATE)
    private Date gmtCreate;

    @ApiModelProperty(notes = N_GMT_MODIFIED, example = E_GMT_MODIFIED)
    private Date gmtModified;

    @ApiModelProperty(notes = "角色信息")
    private List<RoleVO> roleVOList;

    @ApiModelProperty(notes = "原子权限数", example = "1")
    private Long permissionCount;

}

